package util

import (
	"encoding/json"
)

// Transfer
// s1,s2两个结构体结构相同
// 将s1的值传递给s2
// s1和s2的值都应该是指针
func Transfer(s1, s2 interface{}) error {
	logE, _ := GetLogger(Errors)
	marshal, err := json.Marshal(s1)
	if err != nil {
		logE.Error("在解析中出错", err)
		return MarshalError
	}
	err = json.Unmarshal(marshal, s2)
	if err != nil {
		logE.Error("在反解析中出错", err)
		return MarshalError
	}
	return nil
}

// Marshal
// 解析v，并将解析后的值以字符串类型返回
func Marshal(v interface{}) string {
	logE, _ := GetLogger(Errors)
	marshal, err := json.Marshal(v)
	if err != nil {
		logE.Errorf("在解析{%v}时出错err：%v", v, err)
	}
	return string(marshal)
}
